The subject matter disclosed herein relates to reflective memory systems, and more particularly, protection methods and systems for reflective memory systems.
Reflective memory systems may be used for a variety of distributed simulation and industrial control applications. A reflective memory system is a network of computing devices, where each computing device includes a shared memory block and an up-to-date local copy of the shared data. The shared memory block may be one or more areas of a memory device that can be accessed by the computing devices within the reflective memory system. For example, a first computing device in a reflective memory system may write data to its local shared memory block, which is then written to the shared memory block of a second computing device in the reflective memory system. Additionally, the computing devices within a reflective memory system may read or otherwise access the data stored in the shared memory block of other computing devices within the reflective memory system. The physical and/or logical structure of each local shared memory block that is common to each computing device within the reflective memory system may be referred to as a “reflective memory”, a “reflective memory area”, and the like.
Since each computing device can write to the local shared memory block of other computing devices within the reflective memory system, a computing device could overwrite data received from another computing device thereby corrupting the information in the reflective memory. Typical precautions against data corruption include using software applications to monitor the reflective memory and update the reflective memory if the data within the reflective memory does not match the data within a local shared memory block. However, using software applications to prevent or reduce data corruption may require relatively large amounts of data processing resources and/or network resources. Additionally, such software applications may be subject to common cause failures and/or software malfunctions.
Thus, there exists a demand for a solution allowing an improvement over existing reflective memory protection systems. There is a demand to provide a reflective memory system that alleviates the need for one or more processors to compare a reflective memory versus a local shared memory block. Furthermore, there is a demand for hardware based reflective memory protection systems that provide diverse means of preventing memory corruption and mitigates common cause failures due to software malfunctions.